# 前提：课上的所有内容复习一遍，检查哪些地方还未理解
#
# Python练习题：
# 提示：先去分析要定义的类，属性，方法，对象作为一个参数来传递，一定要先写逻辑分析，再写代码。
#
# 1、打印小猫爱吃鱼，小猫要喝水
# 	定义猫类
# 定义一个猫类
# class Mao():
#     # 定一个爱吃鱼的方法
#     def chi(self):
#         print('小猫爱吃吃鱼')
#     # 定一个爱喝水的方法
#     def heshui(self):
#         print('小猫要喝水')
# # 定一个实力化对象
# xiaomao=Mao()
# # 用对象调用爱吃鱼的方法
# xiaomao.chi()
# # 用对象调用爱喝水的方法
# xiaomao.heshui()



#
# 2、小明爱跑步，爱吃东西。
#     1）小明体重75.0公斤
#     2）每次跑步会减肥0.5公斤
#     3）每次吃东西体重会增加1公斤
#     4）小美的体重是45.0公斤
# 定义一个类
# class Ming():
#     # 初始化功能属性
#     def __init__(self,name,wigsh):
#         #赋予名字和体重
#         self.name=name
#         self.wigsh=wigsh
#
#     def __str__(self):
#         return '我的名字是 %s,体重是%.2f' % (self.name,self.wigsh)
#     # 跑步方法
#     def run(self):
#         print("%s  爱跑步"% self.name)
#         self.wigsh -=0.5
#     # 吃零食方法
#     def eat(self):
#         print("%s 爱吃零食" % self.name)
#         self.wigsh +=1
# #
# # 创建一个对象小明
# xiaoming=Ming('小明',75)
# # 对象调用跑步方法
# xiaoming.run()
# # 对象调用吃零食方法
# xiaoming.eat()
# # 打印对象
# print(xiaoming)
#
# # 创建一个小美
# xiaomei=Ming('小美',40)
# # 打印对象
# print(xiaomei)






#
# 3、摆放家具
#     需求：
#     1）.房子有户型，总面积和家具名称列表
#        新房子没有任何的家具
#     2）.家具有名字和占地面积，其中
#        床：占4平米
#        衣柜：占2平面
#        餐桌：占1.5平米
#     3）.将以上三件家具添加到房子中
#     4）.打印房子时，要求输出:户型，总面积，剩余面积，家具名称列表


# # 定义一个家具类
# class Fum():
#     def __init__(self,name,arge):
#         # 家具名字
#         self.name =name
#         # 家具面积
#         self.arge =arge
#
# class Home():
#     def __init__(self,addre,arge):
#         # 房子类型
#         self.addre = addre
#         # 房子面积
#         self.arge =arge
#         # 剩余面积
#         self.frrer=arge
#         # 家具列表
#         self.fukk=[]
#
#     def __str__(self):
#         return f'该房子是{self.addre},房子面积{self.arge},剩余面积是{self.frrer},家具有{self.fukk}'
#
#     def inpo(self,q1):
#         # 当剩余面积小于总面积
#         if self.frrer >=q1.arge:
#             # 在家具列表里添加家具
#             self.fukk.append(q1.name)
#             # 总面积减去家具面积=剩余面积
#             self.frrer-=q1.arge
#         else:
#             print('没有空位置了，家具放不下')
#
# # 创建家具对象
# wq1=Fum('床',4)
# # 创建房子对象
# wq2=Home('一居室',8)
# # 房子对象调用方法
# wq2.inpo(wq1)
# # 打印房子对象
# print(wq2)
#
# # 创建家具对象2
# wq3=Fum('衣柜',2)
# # 房子对象调用方法
# wq2.inpo(wq3)
# print(wq2)
#
# # 创建家具对象3
# wq4=Fum('椅子',2)
# # 房子对象调用方法
# wq2.inpo(wq4)
# print(wq2)
#
# # 创建家具对象4
# wq5=Fum('小抽底',0.5)
# # 房子对象调用方法
# wq2.inpo(wq5)
# print(wq2)

#
# 4.士兵开枪
#     需求：
#     1）.士兵瑞恩有一把AK47
#     2）.士兵可以开火(士兵开火扣动的是扳机)
#     3）.枪 能够 发射子弹(把子弹发射出去)
#     4）.枪 能够 装填子弹 --增加子弹的数量

# 定义一个枪类
# class Gun():
#     #定义枪类的属性，名字，和发射子弹，和装子弹最大数
#     def __init__(self,name,countt):
#         self.name=name
#         self.countt=countt
#         self.max_count=10
#     #定义枪的射击方法
#     def shoot(self):
#         #如果发射出一个一个子弹
#         if self.countt >0:
#             #子弹数减1
#             self.countt -=1
#     #否则提示没有子弹了
#         else:
#             print('没有子弹了，请安装子弹')
#     #定义枪的添加子弹的方法
#     def add_max(self):
#         #判断发射子弹小于装子弹最大数
#         if self.countt <self.max_count:
#             #发射子弹数据加满
#             self.countt +=(self.max_count-self.countt)
#
# #定义一个人类
# class Solide():
#     #定义人类的数据属性，名字，枪类的属性
#     def __init__(self,name,gun_name):
#         self.name =name
#         self.gun_name=gun_name
#
#     #定义开火方法
#     def fire(self):
#         #调用枪类的发射的方法
#         self.gun_name.shuoot()
#
#     #定义添加子弹犯方法
#     def add_bullet(self):
#         #调用枪类装子弹方法
#         self.gun_name.add_max()
# #实例化枪类的对象
# gun01 =Gun('AK47',10)
# #用枪对象调用枪的射击烦烦烦
# gun01.shoot()
# gun01.shoot()
# gun01.shoot()
# #用枪类对象加发射子弹数据
# print('士兵射击后剩余子弹数据量'+ str(gun01.countt))
# Solide01=Solide('瑞恩',gun01)
# #实例化人类对象
# Solide01.add_bullet()
# #用人类实例化对象加发射字段数据
# print('士兵射击后子弹数量' +str(gun01.countt))

#
# 5.github新建一个仓库，练习克隆，提交，创建分支，切换分支等


